// 房间类型
export const RoomType = {
  ALL: 'all',
  STANDARD_SINGLE: 'standard_single',
  DELUXE_KING: 'deluxe_king',
  EXECUTIVE_SUITE: 'executive_suite',
} as const;

export type RoomType = (typeof RoomType)[keyof typeof RoomType];

// 房间状态
export const RoomStatus = {
  // 基础状态
  AVAILABLE: 'available',

  // 预订相关状态
  BOOKED: 'booked',
  PARTIALLY_BOOKED: 'partially_booked',
  OCCUPIED: 'occupied',
  CHECKED_OUT: 'checked_out',
  VIP_BOOKED: 'vip_booked',

  // 清洁状态
  DIRTY: 'dirty',
  CLEANING: 'cleaning',
  CLEANED: 'cleaned',
  DEEP_CLEANING: 'deep_cleaning',
  INSPECTING: 'inspecting',

  // 维护状态
  MAINTENANCE: 'maintenance',
  ROUTINE_MAINTENANCE: 'routine_maintenance',
  DEEP_MAINTENANCE: 'deep_maintenance',
  REPAIR: 'repair',
  EQUIPMENT_REPLACEMENT: 'equipment_replacement',

  // 特殊状态
  LOCKED: 'locked',
  TEMPORARILY_UNAVAILABLE: 'temporarily_unavailable',
  OUT_OF_ORDER: 'out_of_order',
} as const;

export type RoomStatus = (typeof RoomStatus)[keyof typeof RoomStatus];

// 房间信息接口
export interface Room {
  id: string;
  building: string;
  roomNumber: string;
  roomType: RoomType;
  floor: number;
  price: number;
}

// 预订信息接口
export interface Booking {
  id: string;
  roomId: string;
  guestName: string;
  checkIn: string;
  checkOut: string;
  price: number;
  status: 'confirmed' | 'pending' | 'cancelled';
}

// 房间可用性接口
export interface RoomAvailability {
  roomId: string;
  month: string;
  status: RoomStatus;
  booking?: Booking;
}

// 视图类型定义
export const ViewType = {
  DAY: 'day',
  WEEK: 'week',
  MONTH: 'month',
} as const;

export type ViewType = (typeof ViewType)[keyof typeof ViewType];

// 视图配置接口
export interface ViewConfig {
  type: ViewType;
  title: string;
  dateRange: number; // 显示的天数
  cellWidth: number; // 单元格宽度
  timeFormat: string; // 时间格式
  description: string; // 视图描述
}
